<?php

/**
 * @author Leander Molegraaf (op basis van code van Ian den Hamer)
 */
require_once 'defs/constants.php';
require_once FILE_DB_DATABASE;
require_once FILE_DB_CONTROLE;
require_once FILE_DB_PRESENTIELIJST;
require_once FILE_DB_AANWEZIG;
require_once FILE_DB_AANWEZIG_TYPE;
require_once FILE_DB_BEDRIJFSONDERDEEL;
require_once FILE_DB_PROJECT;

class presentielijst {

    private $presentielijst_id = '';
    private $presentielijst_type = '';
    private $toolbox_maand = '';
    private $anders = '';
    private $gehouden_door = '';
    private $datum = '';
    private $onderwerp = '';
    private $locatie = '';
    private $project_id = '';
    private $bijzonderheden = '';
    private $versie_id = '';

    public function save($naamlijst) {

        $database = new DbPresentielijst();
        $database->save($this->toolbox_maand, $this->anders, $this->gehouden_door, $this->datum, $this->onderwerp, $this->locatie, (int)$this->project_id, $this->bijzonderheden, (int)$this->versie_id);
        $presentielijstID = $database->getPresentielijstId();
        
        $aanwezigtype = new DbAanwezigType();
        
        if(empty($this->presentielijst_type)){
            $type = $this->anders;
        } else {
            $type = $this->presentielijst_type;
        }
        
        $id = $aanwezigtype->getId($type); 

        if(empty($id)){
            $aanwezigtype->save($type);
            $id = $aanwezigtype->getAanwezigTypeId();
        }

        $aanwezig = new DbAanwezig();

        foreach ($naamlijst as $naam) {
            if (!empty($naam)) {
                $aanwezig->save($presentielijstID, $id, $naam);
            }
        }
        $this->presentielijst_id = $database->getPresentielijstId();
    }

    public function update() {
        $database = new DbPresentielijst($this->presentielijst_id);
        $database->save($this->toolbox_maand, $this->anders, $this->gehouden_door, $this->datum, $this->onderwerp, $this->locatie, (int) $this->project_id, $this->bijzonderheden, (int) $this->versie_id);
    }

    public function delete() {
        $database = new DbPresentielijst($this->presentielijst_id);
        $database->delete();
    }

    public function getPresentieById($id = '') {
        // input controle
        // @TODO Fix return 
        if ($id == '') return FALSE;
        
        
        $result = Array();

        // Creeer db object
        $db_presentie = new DbPresentielijst($id);
            
        $return_array['project_id'] = $db_presentie->getProjectId();
        $return_array['locatie'] = $db_presentie->getLocatie();
        $return_array['toolbox_maand'] = $db_presentie->getToolboxMaand();
        $return_array['gehouden_door'] = $db_presentie->getGehoudenDoor();
        $return_array['datum'] = $db_presentie->getDatum();
        $return_array['bijzonderheden'] = $db_presentie->getBijzonderheden();
        $return_array['onderwerp'] = $db_presentie->getOnderwerp();
        $return_array['project_id'] = $db_presentie->getProjectId();
        $return_array['gehouden_door'] = $db_presentie->getGehoudenDoor();
        
        $db_bedrijfslaag = new DbBedrijfsonderdeel();
        $db_bedrijfsdata_array = $db_bedrijfslaag->selectOne($id);
        //var_dump($db_bedrijfsdata_array);
        $return_array['leidinggevende_id'] = $db_bedrijfsdata_array[0]['leidinggevende_id'];
        $return_array['beschrijving'] = $db_bedrijfsdata_array[0]['beschrijving'];
        $return_array['locatie'] = $db_bedrijfsdata_array[0]['locatie'];
        
        $db_project = new DbProject($id);
        
        $return_array['naam'] = $db_project->getNaam();
        //var_dump($db_project);
        // 
        //var_dump( $db_presentie);
        
        return $return_array;
        
    }
        
    //setters

    public function getPresentielijst_id() {
        return $this->presentielijst_id;
    }

    public function setPresentielijst_id($id) {
        if (is_numeric($id)) {
            $this->presentielijst_id = $id;
        } else {
            throw new Exception(TBM_ERROR_INVALIDTBTYPEID);
        }
    }

    public function getPresentielijst_type() {
        return $this->presentielijst_type;
    }

    public function setPresentielijst_type($presentielijst_type) {
        if (is_string($presentielijst_type)) {
            $this->presentielijst_type = $presentielijst_type;
        } else {
            throw new Exception(TBM_ERROR_INVALIDTBMTYPE);
        }
    }

    public function getToolbox_maand() {
        return $this->toolbox_maand;
    }

    public function setToolbox_maand($toolbox_maand) {
        $this->toolbox_maand = $toolbox_maand;
    }

    public function getAnders() {
        return $this->anders;
    }

    public function setAnders($anders) {
        $this->anders = $anders;
    }

    public function getGehouden_door() {
        return $this->gehouden_door;
    }

    public function setGehouden_door($gehouden_door) {
        $this->gehouden_door = $gehouden_door;
    }

    public function getDatum() {
        return $this->datum;
    }

    public function setDatum($datum) {
        $this->datum = $datum;
    }

    public function getOnderwerp() {
        return $this->onderwerp;
    }

    public function setOnderwerp($onderwerp) {
        $this->onderwerp = $onderwerp;
    }

    public function getLocatie() {
        return $this->locatie;
    }

    public function setLocatie($locatie) {
        $this->locatie = $locatie;
    }

    public function getProject_id() {
        return $this->project_id;
    }

    public function setProject_id($project_id) {
        $this->project_id = $project_id;
    }

    public function getBijzonderheden() {
        return $this->bijzonderheden;
    }

    public function setBijzonderheden($bijzonderheden) {
        $this->bijzonderheden = $bijzonderheden;
    }

    public function getVersie_id() {
        return $this->versie_id;
    }

    public function setVersie_id($versie_id) {
        $this->versie_id = $versie_id;
    }

    public function getToolboxData($tbm_id) {
        $database = new DbPresentielijst();
        $data_array = $database->get($tbm_id);

        return $data_array;
    }

    public function getToolboxDataOverzicht() {
        $database = new DbPresentielijst();
        $data_array = $database->selectOverzichtPresentielijst();

        return $data_array;
    }
}

?>